package fr.thelem.gestiondemandesthelem.service;

import java.io.File;

import fr.thelem.gestiondemandesthelem.service.exceptions.BackupException;

/**
 * Interface du service de sauvegarde des données importées
 */
public interface IBackupProcess {

    /**
     * Sauvegarde un fichier
     * 
     * @param path dossier de destination
     * @param fichier fichier à sauvegarder
     * @param fichierFileName nom du fichier
     * @throws BackupException
     */
    void sauvegarderFichier(String path, File fichier, String fichierFileName) throws BackupException;

    /**
     * Extrait l'extension à partir du nom fichier
     * 
     * @param nomFichier nom du fichier
     * @return extension
     */
    String extraireExtension(String nomFichier);

    /**
     * Génère le nom d'un fichier à partir du nom de l'utilisateur et du type de ce fichier.
     * 
     * 
     * @param typeFichier nom aparaissant dans le fichier pour le distinguer d'un autre
     * @param nomFichierPourExtension nom du fichier d'origine pour en extraire l'extension
     * @param nomUtilisateur utilisateur devant apparaitre dans le nom du fichier
     * @return nom du fichier sous la forme : date_typeFichier_nomUtilisateur.extension
     */
    String creerNomFichier(String typeFichier, String nomFichierPourExtension, String nomUtilisateur);

}
